package com.qf.blog.core.utils;

import org.mindrot.jbcrypt.BCrypt;

/**
 * 密码加密的工具类
 * @author zyt
 * @version 1.0
 */
public class PasswordUtils {
    public static void main(String[] args) {

        System.out.println(hashPw("toString"));
        System.out.println(check("123456","$2a$10$usjeOimDtdqgCJQ1vP/zveSBYC2xe.NA5tZ3yfS8WmZjM9gmGxXky"));
    }
    // 加密
    public  static String hashPw(String pw){
        // salt: 盐，一个128bits随机字符串，22字符
//        BCrypt中的genSalt方法接收一个数值作为参数，
//        数值越大生成的随机字符串复杂度越高，数值越小
//    生成的随机字符串复杂度越低，默认值是 10，返回生成的随机字符串。
        //Bcrypt是单向Hash加密算法
        return BCrypt.hashpw(pw,BCrypt.gensalt());
    }
    // 对比
    public static Boolean check(String pw , String dbpw){

        return BCrypt.checkpw(pw,dbpw);  // 返回true 就是密码匹配成功
    }
}
